Controllers of memory systems often utilize multiple caches, some of which are internal to the controller and some of which are external to the controller. For example in many implementations, controllers of memory systems utilize one internal cache that is internal to the controller and one external DRAM cache that is external to the controller.
The internal cache allows the controller to cache data such as central processing unit variables that flow between the external DRAM cache and the controller. In addition to storing data for the controller, the external DRAM cache also provides for the caching of data as data flows between a host that is coupled with the memory system and a non-volatile memory of the memory system.
The internal cache that is internal to the controller is often significantly faster than the external DRAM cache and may be accessed at finer resolutions than the external DRAM cache. However, the size of the internal cache is often significantly smaller than the external DRAM cache. For example, a size of an internal cache is often on the order of 128 Kilobits, where a size of an external cache is often on the order of 512 Megabits.
Improved memory systems are desirable that are able to provide controllers with a cache that provides the speed and fine resolution of an internal cache while also providing the size and coarse resolution of an external DRAM cache.